package com.hualan.servlet;

import com.alibaba.fastjson.JSON;
import com.hualan.bean.Shop;
import com.hualan.dao.MenDianDao;
import com.hualan.dao.MenDianDaoImpl;


import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.awt.print.Book;
import java.io.IOException;
import java.util.HashMap;
import java.util.List;

@WebServlet("/list")
public class PanghuListServlet extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        //       获取前端传递的分页信息  page 和size
        String pageString = req.getParameter("page");
        int page = pageString == null ? 1:Integer.parseInt(pageString);
        String sizeString = req.getParameter("size");
        int size = sizeString  == null ? 10:Integer.parseInt(sizeString);
//        创建Map对象  用来给前端返回信息
        HashMap<String,Object> map = new HashMap<>();
        //        3.查询数据总条数 ---增删改查来自Dao
     MenDianDao menDianDao = new MenDianDaoImpl();
        Long count = menDianDao.selectAllMenDianCount();
        //        将数量存储到map中
        map.put("total",count);
        //        4.按照分页查询数据
        List<Shop> shopList = menDianDao.selectMenDianWithPage(page,size);
        //        将数据以键值对  存储map中
        map.put("list",shopList);
//        5.设置code状态码  200 成功  300 失败  ;以及message信息
        if (count > 0 && shopList != null){
            map.put("code",200);
            map.put("message","请求成功");
        }else {
            map.put("code",300);
            map.put("message","获取数据失败");
        }
        //        6.将数据源map 通过response返回前端
//        问题
//        .json是文件存储数据的一种格式,  参考 .txt  .word .pang等 仅仅是一种文件格式  但是其内部遵循键值对{}和数组[]结构,所以我们在进行网络数据输出都会使用此格式的数据传递
        resp.setCharacterEncoding("utf-8");
        resp.setContentType("text/html;charset=utf-8");
        String jsonString = JSON.toJSONString(map);
        resp.getWriter().write(jsonString);


    }
}
